package practice.Day23;

import java.util.Arrays;

/**
 * @Author quan
 * @Description 微信红包
 * @Date 2023/6/5 22:31
 */
public class Num1_RedEve {
    /**
     * 有个红包金额超过了红包总数的一半，找出该红包金额;如果没有就返回0。
     * eg: [1,2,3,2,2]
     * 输出：2
     */
    public static void main(String[] args) {

        int[] arr = {1,1,1,2};
        int res = getValue(arr,arr.length);
        System.out.println(res);
    }
    public static int getValue(int[] arr, int n) {
        //思路：方法1：写到map中并统计次数；
        //方法2：或者直接更新最大值
        //这里采用方法2
        int count = 1;
        //1、先对数组进行排序
        Arrays.sort(arr);
        //2、开始计数
        int maxNum = 1;
        //定义变量n来记录最大数量的i值
        int k = 0;
        for (int i = 0; i < arr.length-1; i++) {
           if(arr[i]==arr[i+1]){
               count++;
               //最大值与最新的count进行比较，更新最大值
               if(maxNum < count){
                   maxNum = count;
                   k = arr[i];
               }
           }else{
               count = 1;
           }
        }
        //同时判断n值是不是大于红包数量的一半，是的话就返回，不是的话就返回0
        if(maxNum >= arr.length/2){
            return k;
        }else{
            return 0;
        }
    }
}
